(以下程式碼位在[pokerfirstmod/item]中,名稱為ModCreativeModeTab)
書接上回
@Mod.EventBusSubscriber(modid = Mymod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModCreativeModeTabs {
public static CreativeModeTab INDUSTRY_TAB;
@SubscribeEvent
public static void registerCreativeModeTabs(CreativeModeTabEvent.Register event){
INDUSTRY_TAB = event.registerCreativeModeTab(new ResourceLocation(Mymod.MOD_ID,"industry_tab")
, builder -> builder.icon(() -> new ItemStack(ModItems.SILVER.get())).title(Component.translatable("creativemodetab.industry_tab")));
}
}
public static void registerCreativeModeTabs(CreativeModeTabEvent.Register event)
它接受一個事件 CreativeModeTabEvent.Register 作為參數。當Forge初始化創造模式分類時,將會觸發這個方法。
INDUSTRY_TAB = event.registerCreativeModeTab(new ResourceLocation(Mymod.MOD_ID,"industry_tab")
在這行程式碼中,我們創建了一個自定義的創造模式分類並將其註冊。這個創造模式分類的名稱由 new ResourceLocation(Mymod.MOD_ID, "industry_tab") 指定,Mymod是我的mod id,"industry_tab" 是分類的名稱。INDUSTRY_TAB 是一個變數,用於存儲註冊後的創造模式分類。
builder -> builder.icon(() -> new ItemStack(ModItems.SILVER.get())).title(Component.translatable("creativemodetab.industry_tab"))
這段程式碼是在建立新創造模式分類的圖標與名稱,builder.icon規定圖標是來自ModItems的SILVER,ItemStack是指物品的單位,這樣我們的銀錠就會是新分類的圖標。還有我們的新分類的名稱會是可以本地化的名稱,這個名稱代號creativemodetab.industry_tab,我們可以在resources中的lang中設置不同語言有不同的文字,目前我的lang檔只有en_us.json檔,只需要在這個檔中寫上
(以下程式碼位在[resources/assets/pokerfirstmod/lang]中,名稱為en_us.json)
"creativemodetab.industry_tab": "Industry"
就可以了
終於到了第十五天,這十幾天真的是提心吊膽
明天講語言本地化